package cn.com.dcsgo.mybatis.plus.service;

import cn.com.dcsgo.mybatis.plus.domain.dto.PageDTO;
import cn.com.dcsgo.mybatis.plus.domain.po.User;
import cn.com.dcsgo.mybatis.plus.domain.query.UserQuery;
import cn.com.dcsgo.mybatis.plus.domain.vo.AddressVO;
import cn.com.dcsgo.mybatis.plus.domain.vo.UserVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author Dcsgo
 * @since 2024-08-31
 */
public interface IUserService extends IService<User> {

    void reduceBalance(Long id, Integer money);

    List<User> queryUsers(String name, Integer status, Integer minBalance, Integer maxBalance);

    UserVO getUserAndAddressesById(Long id);

    List<UserVO> listAndAddressesByIds(List<Long> ids);

    List<AddressVO> queryAddresses(Long id);

    PageDTO<UserVO> queryUsersByPage(UserQuery query);
}
